SQL根據操作的功能性可分四大類: DDL、DQL、DML、DCL、TCL,五種功能差異整理如下,其中較容易讓初學者混淆的是Delete
與Drop
,Delete
是對Row or Column維度
進行刪除,Drop
是對Table維度
刪除。本系列會著重在深入講解DQL的活用。
【比較表】
SEQ | Function | Introduction | Programming Syntax |
---|---|---|---|
1 | DDL(Data Definition Language, 資料定義命令) | 建立、刪除、更新Table | Create, Drop, Alter |
2 | DQL(Data Query Language, 資料查詢語言) | 各種查詢or建立KPI | Select |
3 | DML(Data Manipulation Language, 資料操作語言) | 插入、更新、刪除單筆/多筆資料 | Insert, Update, Delete |
4 | DCL(Data Control Language, 資料控制語言) | 管理資料庫使用者權限 | Grant, Revoke |
5 | TCL(Transaction Control Language, 事務控制語言) | 批次處理資料, 同時成功儲存or失敗 | Begin, Commit, Rollback |
過往開發網站的時候,我會以 CRUD 的方式將每張 Table 建立成一個物件,撰寫成 API,後面的章節會再介紹API的細節。
CREATE TABLE `hackathon`.`student` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(20) NOT NULL , `password` VARCHAR(20) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB CHARSET=ascii COLLATE ascii_general_ci;
SELECT * FROM `user` WHERE 1=1
>>> 塞入全新的一筆資料
INSERT INTO `user` (`u_id`, `username`, `password`, `email`) VALUES ('123556', '王小明', 'AAA', 'aaa@gmail.com');
>>> 更新資料特定欄位
UPDATE `user` SET `username`="許阿花" WHERE `username`="王小明"
DELETE FROM `user` WHERE `user`.`u_id` = 123556
MySQL必須掌握4種語言
Delete vs Truncate vs Drop
DB學習筆記-SQL
XML與JSON差異
SQL語法字典